package fr.ajicommerce.core.dto;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import fr.ajicommerce.core.entities.LigneProduit;
import fr.ajicommerce.core.entities.StatusCommande;

public class CommandeDTO implements Serializable {

	private static final long serialVersionUID = 1L;
	private Long idCommande;
	private String refCommande;
	private Date dateCommande;
	private Date dateLivraison;
	private StatusCommande status;
	private List<LigneProduit> ligneProduit;

	public double total() {
		double total=0.0;
		for (LigneProduit ligne : ligneProduit){
			total+=ligne.getQuantite()*ligne.getCopieProduit().getPrixInstantCommande();
		}
		return total;
	}

	public CommandeDTO() {

	}

	public CommandeDTO(String refCommande, Date dateCommande,
			Date dateLivraison, StatusCommande status,
			List<LigneProduit> ligneProduit) {
		super();
		this.refCommande = refCommande;
		this.dateCommande = dateCommande;
		this.dateLivraison = dateLivraison;
		this.status = status;
		this.ligneProduit = ligneProduit;
	}

	public CommandeDTO(Long idCommande, String refCommande, Date dateCommande,
			Date dateLivraison, StatusCommande status,
			List<LigneProduit> ligneProduit) {
		super();
		this.idCommande = idCommande;
		this.refCommande = refCommande;
		this.dateCommande = dateCommande;
		this.dateLivraison = dateLivraison;
		this.status = status;
		this.ligneProduit = ligneProduit;
	}

	public Long getIdCommande() {
		return idCommande;
	}

	public void setIdCommande(Long idCommande) {
		this.idCommande = idCommande;
	}

	public String getRefCommande() {
		return refCommande;
	}

	public void setRefCommande(String refCommande) {
		this.refCommande = refCommande;
	}

	public Date getDateCommande() {
		return dateCommande;
	}

	public void setDateCommande(Date dateCommande) {
		this.dateCommande = dateCommande;
	}

	public Date getDateLivraison() {
		return dateLivraison;
	}

	public void setDateLivraison(Date dateLivraison) {
		this.dateLivraison = dateLivraison;
	}

	public StatusCommande getStatus() {
		return status;
	}

	public void setStatus(StatusCommande status) {
		this.status = status;
	}

	public List<LigneProduit> getLigneProduit() {
		return ligneProduit;
	}

	public void setLigneProduit(List<LigneProduit> ligneProduit) {
		this.ligneProduit = ligneProduit;
	}

	@Override
	public String toString() {
		return "CommandeDTO [idCommande=" + idCommande + ", refCommande="
				+ refCommande + ", dateCommande=" + dateCommande
				+ ", dateLivraison=" + dateLivraison + ", status=" + status
				+ ", ligneProduit=" + ligneProduit + "]";
	}

}
